package cn.csc.module.pay.dal.dataobject.drawcash;

import io.swagger.annotations.ApiModelProperty;
import lombok.*;

import java.math.BigInteger;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.*;
import java.math.BigDecimal;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.*;
import cn.csc.framework.mybatis.core.dataobject.BaseDO;

/**
 * 提款申请记录 DO
 *
 * @author 华南城
 */
@TableName("pay_draw_cash")
@KeySequence("pay_draw_cash_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class PayDrawCashDO extends BaseDO {

    /**
     * 维一标识
     */
    @TableId
    private BigInteger id;
    /**
     * 商户编号
     */
    private BigInteger merchantId;
    /**
     * 外部商户ID
     */
    private String appUserId;
    /**
     * 提款类型 ,1个人，2公司
     */
    private Integer drawType;
    /**
     * 商户生成提款流水号
     */
    private String serialNo;
    /**
     * 本地系统生成的流水号
     */
    private String drawNo;
    /**
     * 见证宝返回提款流水号
     */
    private String serialSeq;
    /**
     * 打款时间
     */
    private LocalDateTime payDate;

    /**
     * 银行卡姓名
     */
    private String acctName;
    /**
     * 会员证件类型
     */
    private String memberGlobalType;
    /**
     * 会员证件号码
     */
    private String memberGlobalId;
    /**
     * 银行卡号
     */
    private String memberAcctNo;
    /**
     * 提款金额
     */
    private BigDecimal amount;
    /**
     * 提款描述
     */
    private String body;
    /**
     * 状态(0:待提现 1:提款成功,2:提现失败,3:提现中或者新建,4:取消提款,5:退单，10:待人工处理)
     */
    private Integer status;
    /**
     * 提现手续费用
     */
    private BigDecimal handFee;
    /**
     * 提现描述信息(记录提现异常消息)
     */
    private String drawMsg;

    /**
     * 定时状态(0:待执行 1:已执行 2执行中)
     */
    private Integer taskStatus;

    /**
     * 平安银行见证宝维一编码
     */
    private String jzbCode;

    /**
     * 定时失败次数
     */
    private int taskNum;

    /**
     * 提现时间
     */
    private LocalDate taskTime;

    private LocalDateTime createTime;

}
